【EMNLP2021&&含源码】当“Attention“遇到”Fast Recurrence“,强大的语言训练模型!!
喜欢我们的文章,点击上方AINLPer,关注一下叭!
引言
我们知道由于计算时间和成本的增加,大型语言模型变得越来越难以训练。 基于这个问题,今天给大家分享EMNLP2021顶会上的一篇文章,本篇论文的主要工作是建立在 SRU(一种高度并行化的 RNN 实现)之上, 作者结合了快速循环和序列建模的注意力机制, SRU++表现出强大的建模能力和训练效率。在 ENWIK8、WIKI-103 和 BILLION WORD 数据集等标准语言建模任务上,该模型能够更好的获得每个字符位和复杂度,同时与顶级 Transformer 模型相比,训练成本降低了 3 到 10 倍。。论文及源码下载链接在文章后面。正文开始
1背景引言 语言建模的许多最新进展主要依赖越来越大的数据集和模型架构。 因此,训练此类模型的相关计算成本大幅增加,每次训练都需要数百个GPU工作几个小时或者几天,这引发对当前研究环境可持续性的担忧。 因此,构建在保持顶级建模能力的同时降低计算成本的计算高效模型变得势在必行。
Transformer 架构被提出用于加速模型训练,并已成为 NLP 中的主要架构。具体来说,它完全建立在 self-attention 上,避免使用递归来实现强大的并行化。虽然这种变化导致了许多经验上的成功并提高了计算效率,但我们可否提这么一个问题:我们是都可以通过结合注意力和快速循环网络来构建更有效的模型呢?答案是肯定的!
在这项工作中,作者就验证了这个想法:提出了一个自我注意的循环单元,它实现了强大的计算效率。本文的工作主要是建立在 SRU(一种高度并行化的 RNN 实现)之上。作者通过简单地用自注意力组件替换输入的线性变换来将注意力纳入SRU,改进之后称为 SRU++,它具有增强的建模能力,并保持同样的可并行性。
如上图所示,在 ENWIK8 数据集上将其性能与 Transformer-XL 模型(Dai 等,2019)进行了比较。SRU++ 在使用基线所需的一小部分训练资源的同时取得了更好的结果。
SRU++最关键的改变是将更具表现力的非线性操作合并到循环网络中。作者用 self-attention 操作代替原始SRU中的线性变换来增强建模能力,然后使用缩放的点积注意力计算加权平均输出,元素递归式所需的最终输出是通过另一个线性投影得到的,最后一个修改是为每个 SRU++ 层添加层归一化。其中SRU、SRU变体以及本文提出的SRU++的模型架构图如下图所示。
作者在标准语言建模基准(包括 ENWIK8、WIKI103 和 BILLION WORD 数据集)上评估 SRU++。SRU++ 在这些数据集上始终优于各种 Transformer 模型,提供更好或相当的结果,同时使用的计算量减少 3-10 倍。且该模型不使用位置编码、多头注意力和其他对 Transformer 模型有用的技术。 这些变化不仅突出了循环的有效性,而且还可以大大减少训练和推理的计算量。最后,作者还展示了 SRU++ 在 IWSLT’14 De→En 翻译任务上的有效性,并在 Pytorch 中开源我们的实现以促进未来的研究。
在ENWIK8、WIKI103 和 BILLION WORD 数据集上的测试结果
SRU++ 在 IWSLT’14 De→En 翻译任务上的有效性
Paper && Code
Paper:When Attention Meets Fast Recurrence:Training Language Models with Reduced Compute.
link:https://arxiv.org/pdf/2102.12459.pdf
Code:https://github.com/asappresearch/sru如果您不便下载:回复: SRU++ 获取原文。♥如果您喜欢AINLPer的文章♥
资料整理不易,帮忙点个【赞】、【在看】吧